// 800 * 800 = 25^2 * (32 * 32)

#include <vector>
#include <GL/glut.h>
#include <GL/gl.h>
#include "main.h"
#include "display.h"
#include "key_control.h"
#include "game.h"

mat_char tmap(32, std::vector<char>(32, 0));
std::vector<bool> key_states(256, false);
bool is_play = false;
bool is_play_init = false;
bool is_over = false;
const int t_size = 25;

int speed_time = 200;
int score = 0;

Snake tsnake;

int main(int argc, char **argv) {
  //初始化并创建屏幕
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 显示方式(单缓重区，深度缓冲)
  glutInitWindowSize(800, 800);                // 窗口大小
  glutInitWindowPosition(500, 50);             // 窗口起始位置
  glutCreateWindow("Snake");                   // 窗口标题

  // 定义所有控制功能
  glutDisplayFunc(display); // 窗口更新
  glutReshapeFunc(reshape); // 窗口变化
  display();
  // glutIdleFunc(display);         // 循环画图
  glutKeyboardFunc(key_pressed); // 按键盘操作
  glutTimerFunc(speed_time, time_loop, 0);
  //   glutKeyboardUpFunc(keyUp);    //

  //运行游戏
  //   init();
  glutMainLoop();
  return 0;
}
